<template>
  <div class="home-panel">
    <div class="container">
      <div class="head">
        <h3>
          {{ title }}<small>{{ subTitle }}</small>
        </h3>
        <!-- 右侧内容区域 -->
        <slot name="right" />
      </div>
      <!-- 主体内容区域 -->
      <slot name="main" />
    </div>
  </div>
</template>

<script>
/**
 * 为什么要封装？
 * 新鲜好物和人气推荐 结构是相似的 都是四部分构成
 * 1. 主标题
 * 2. 副标题
 * 3. 右侧内容
 * 4. 主体内容
 * 具体内容不同但是 结构模板是相似的 封装一个复用结构的组件
 *
 * 封装逻辑？
 * 1. 封装复用的模板部分 写一次就可以
 * 2. 把那些自定义的内容抽象成组件参数 [props, 插槽]
 *    1. 主标题和副标题  -> props
 *    2. 右侧内容和主体内容 自定义模板template  -> slot
 *
 * 总结: 纯渲染的复用结构类型的组件 复用模板结构 抽象可变的部分变成props或者插槽
 * 如果自定义的内容足够简单 能够用js类型做描述 抽象props 如果自定义的内容比较复杂 html模板 抽象成插槽
 * 插槽如果数量比较多且各有各的用处  建议抽象具名插槽
 */
export default {
  name: 'pannel-vue',
  props: {
    title: {
      type: String
    },
    subTitle: {
      type: String
    }
  }

}
</script>

<style scoped lang='less'>
.home-panel {
  background-color: #fff;
  .head {
    padding: 40px 0;
    display: flex;
    align-items: flex-end;
    h3 {
      flex: 1;
      font-size: 32px;
      font-weight: normal;
      margin-left: 6px;
      height: 35px;
      line-height: 35px;
      small {
        font-size: 16px;
        color: #999;
        margin-left: 20px;
      }
    }
  }
}
</style>
